package basisDemo;


class Shape {
    private int field = printInit("@Father Field");

    private void method() {
    }

    Shape() {
        System.out.println("@Father Constructor: i = " + i + ", j = " + j);
        j = 5;
    }

    private static int i;
    protected static int j = 10;
    private static int x1 = printInit("@Father Static Source: private Shape.x1 initialized Static Source");

    static int printInit(String s) {
        System.out.println(s);
        return ++i;
    }
}

public class Circle extends Shape {
    int k = printInit("@Son Field: Circle.k initialized");

    private void aMethod() {
    }

    public Circle() {
        System.out.println("@Son Constructor: k = " + k);
        System.out.println("j = " + j);
        System.out.println("x2 = " + x2);
    }
    public static int x2 = printInit("@Son Static Source: public Circle.x2 initialized Static Sourcce");
    
    public static void main(String[] args) {
        System.out.println("@Son Static Source: main method");
        Circle b = new Circle();
        System.out.println("@Keep Going in main: b.k=" + b.k);
    }


}
